import Fly from "flyio"


// import Nat from 'natjs';
const fly = new Fly();



// const appUtilModule = weex.requireModule('appUtilModule');
// const BaseUrl = 'http://10.100.20.189:5050';
// 配置请求基地址
// fly.config.baseURL = '';
fly.config.timeout = 20000;
// appUtilModule.getAppRouterScheme((v)=> {
// 	notificationModule.toast({message:JSON.stringify(v),type:1});
// });

fly.interceptors.request.use(
  (config, _promise) => {
    controlModule.showLoading(); //显示
    // 给所有请求添加自定义header
    config.headers["Content-Type"] = "application/json";

    if (weex.config.env.platform.toUpperCase() !== "IOS") {
      const cookieModule = weex.requireModule("cookieModule");
      const cookies = new Promise((resolve, reject) => {
        cookieModule.getCookieInfo(resp => {
          resolve(resp);
          // notificationModule.toast({message:JSON.stringify(resp),type:1});
        });
      });
      return cookies.then(res => {
        let cooks = res.map(item => {
          return `${item.name}=${item.value}`;
        });
        config.headers.Cookie = cooks.join(";");
        return config;
      });
    } else {
      return config;
    }
    // 可以通过promise.reject／resolve直接中止请求
    // promise.resolve("fake data")
  },
  _err => {
    controlModule.hideLoading();
    notificationModule.toast({ message: "网络异常,请稍后再试!", type: 1 });
  }
);

// 添加响应拦截器，响应拦截器会在then/catch处理之前执行
fly.interceptors.response.use(
  (response, _promise) => {
    // 隐藏
    controlModule.hideLoading();
    // 登录超时跳转登录页面并区别是否是首页(首页登出不跳转到登录)
    if (response && response.data) {
      if (
        (response.data.timeout &&
          response.request.body.indexOf("yyyq.app.index") == -1) ||
        response.data.status == 401
      ) {
        util.witchRoute("://tab/show?index=0");
        setTimeout(() => {
          util.witchRoute("://page/login");
        }, 0);
        notificationModule.toast({ message: "登录超时", type: 1 });
      }

      // 数据返回
      if (response.data.desData) {
        if (!response.data.succ) {
          if (response.data.message.length > 5) {
            notificationModule.alert(
              {
                message: response.data.message,
                buttons: ["确定"]
              },
              function() {}
            );
          } else {
            notificationModule.toast({
              message: response.data.message,
              type: 1
            });
          }
        } else {
          if (
            util.BASE_URL !== "https://app-portal.yingyinglicai.com" &&
            util.BASE_URL !== "http://app-portal.pre.yingyingwork.com"
          ) {
            // 不解密
            response.data.desData =
              response.data.desData && JSON.parse(response.data.desData);
          } else {
            // 解密
            response.data.desData =
              response.data.desData &&
              JSON.parse(app.decrypted(response.data.desData));

            // notificationModule.alert({message:JSON.stringify(response.data.desData)});
          }
        }
      }
    }

    // 只将请求结果的data字段返回
    return response.data || "";
  },
  _err => {
    switch (_err.status) {
      // case 400:
      // 	notificationModule.toast({
      // 		message: '请重新打开页面试试！',
      // 		type: 1
      // 	});
      // 	break;
      case 401:
        //跳转
        // util.witchRoute('://tab/show?index=0');
        util.witchRoute("://page/login");
        setTimeout(() => {
          util.witchRoute("://page/login");
        }, 0);
        notificationModule.toast({ message: "登录超时", type: 1 });
        break;
      case 404:
        notificationModule.toast({
          message: "您请求的资源可能不存在了呢 ！",
          type: 1
        });
        break;
      case 500:
      case 501:
      case 502:
      case 503:
      case 504:
        notificationModule.toast({
          message: "网络异常，请稍后再试！",
          type: 1
        });
        break;
    }
    //隐藏
    controlModule.hideLoading();
    // notificationModule.toast({message:'网络异常,请稍后再试!',type:1});
  }
);
export default fly;
